# -*- coding: utf-8 -*-
from django.db import models
from django.db.models import signals
from django.core.urlresolvers import reverse
from django.template.defaultfilters import slugify
from django.contrib.auth.models import User
from Scope.thumbs import ImageWithThumbsField
from Advertiser.models import BasePublicidade, Logradouros
def content_image_name(instance, filename):
    return '/'.join(['arquivos/igreja', str(instance.nomeSetor.slugdivisao), filename])

def imagem_galeria(instance, filename):
    return '/'.join(['arquivos/galeria', str(instance.nomeGaleria.sluggaleria), filename])

class Cidade(models.Model):
    nome = models.CharField("Cidade", max_length=50, default="Teresina", unique=True)
    slugcidade = models.SlugField(max_length=50, blank=True, unique=True)
    def __unicode__(self):
        return self.nome
    def get_absolute_url(self):
        return reverse('Scope.views.cidade', kwargs={'slugcidade': self.slugcidade})

class Igreja(models.Model):
    nome = models.CharField("Denominação", max_length=50, unique=True)
    slugigreja = models.SlugField(max_length=50, blank=True, unique=True)
    def __unicode__(self):
        return self.nome
    def get_absolute_url(self):
        return reverse('Scope.views.igreja', kwargs={'slugigreja': self.slugigreja})

class IgrejaCidade(models.Model):
    nomeCidade = models.ForeignKey(Cidade, verbose_name= 'Cidade')
    nomeIgreja = models.ForeignKey(Igreja, verbose_name= 'Igreja')
    class Meta:
        verbose_name = 'Cidade com igreja'
        verbose_name_plural = 'Cidade com igreja'
    def __unicode__(self):
        return "%s em %s" % (self.nomeCidade.nome, self.nomeIgreja.nome)
    def get_absolute_url(self):
        return reverse('Scope.views.igrejacidade', kwargs={'slugigrejanacidade': self.slugigrejanacidade})

class Congregacao(Logradouros):
    # Dados da Igreja
    nome = models.CharField("Nome da congregação", max_length=50, unique=True)
    nomeIgrejaCidade = models.ForeignKey(IgrejaCidade, verbose_name='Igreja na cidade', help_text='Escolha sua denominação na cidade')
    supervisor = models.CharField(max_length=30)
    telefone = models.CharField("Telefone", max_length=10, blank=True, null=True)

    # Endereço - Classe Abstrata Logradouro

    # Dados Sociais
    foursquare = models.URLField("Fourquare", blank=True, null=True, verify_exists=False)
    facebook = models.URLField("Facebook", blank=True, null=True, verify_exists=False)
    # Google Maps
    googlemaps = models.TextField("Embed Maps", blank=True, null=True)
    fotoigreja = ImageWithThumbsField('Imagem Destaque', upload_to=content_image_name, sizes=((800,600),(300,225)), blank=True, null=True)
    # Informações Adicionais
    conteudo = models.TextField('Conteúdo')
    # Dados adicionais
    slugcongregacao = models.SlugField(max_length=200, blank=True, unique=True)
    datacriacao = models.DateTimeField(auto_now_add=True)
    dataedicao = models.DateTimeField(auto_now=True)
    cliques = models.IntegerField('Cliques', default=0, editable=False)
    autor = models.ForeignKey(User)
    def __unicode__(self):
        return self.nome
    def get_absolute_url(self):
        return reverse('Scope.views.congregacao', kwargs={
            'slugigrejanacidade': self.nomeIgrejaCidade.slugigrejanacidade,
            'slugcongregacao': self.slugcongregacao
        })

class FotoCongregacao(models.Model):
    foto = ImageWithThumbsField('Imagem Destaque', upload_to=imagem_galeria, sizes=((918,573),(170,127)))
    fotoCongregacao = models.ForeignKey(Congregacao)


def cidade_pre_save(signal, instance, sender, **kwargs):
    instance.slugcidade = slugify(instance.nome)

signals.pre_save.connect(cidade_pre_save, sender=Cidade)

def igreja_pre_save(signal, instance, sender, **kwargs):
    instance.slugigreja = slugify(instance.nome)

signals.pre_save.connect(igreja_pre_save, sender=Igreja)

def igrejacidade_pre_save(signal, instance, sender, **kwargs):
    slugnacidade = slugify(instance.nomeCidade.nome)
    slugnaigreja = slugify(instance.nomeIgreja.nome)
    novo_slug = '%s-%s'%(slugnacidade, slugnaigreja)
    instance.slugigrejanacidade = novo_slug
signals.pre_save.connect(igrejacidade_pre_save, sender=IgrejaCidade)

def congregacao_pre_save(signal, instance, sender, **kwargs):
    instance.slugcongregacao = slugify(instance.nome)

signals.pre_save.connect(congregacao_pre_save, sender=Congregacao)